package com.huiyun.project.im.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 会话列表
 * </p>
 *
 * @author DESKTOP-CIBUH3O
 * @since 2020-07-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("im_cs_session")
@ApiModel(value = "ImCsSession对象", description = "会话列表")
public class ImCsSession implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.INPUT)
    private String id;

    private String userId;

    @ApiModelProperty(value = "用户昵称")
    private String userNick;


    @ApiModelProperty(value = "用户删除状态")
    private Integer userDelFlag;

    @ApiModelProperty(value = "客服坐席ID")
    private String csId;

    @ApiModelProperty(value = "坐席昵称")
    private String csNick;

    @ApiModelProperty(value = "客服组ID")
    private String csOrgId;

    @ApiModelProperty(value = "客服组名称")
    private String csOrgName;

    @ApiModelProperty(value = "客服所属租户")
    private String csTenantId;


    @ApiModelProperty(value = "客服租户类别")
    private Integer csTenantCate;


    @ApiModelProperty(value = "客服端删除状态")
    private Integer csDelFlag;

    @ApiModelProperty(value = "客服所属服务商ID")
    private String csSpId;


    @ApiModelProperty(value = "应用")
    private String appKey;
    @ApiModelProperty(value = "用户未读消息数量")

    private Integer userUnreadNum;
    @ApiModelProperty(value = "客服未读消息数量")
    private Integer csUnreadNum;

    @ApiModelProperty(value = "会话创建时间")
    private Date beginTime;

    @ApiModelProperty(value = "会话结束时间")
    private Date endTime;

    @ApiModelProperty(value = "用户第一次发消息时间")
    private Date userFirstTime;

    @ApiModelProperty(value = "用户最后一次发消息时间")
    private Date userLastTime;

    @ApiModelProperty(value = "客服第一次发消息时间")
    private Date csFirstTime;

    @ApiModelProperty(value = "坐席最后一次发消息时间")
    private Date csLastTime;

    @ApiModelProperty(value = "最后一条用户或者客服消息,文本就显示截取长度,其他类型显示类型如:[图片]")
    private String lastMsg;

    @ApiModelProperty(value = "IP-DATA信息")
    private String region;

    @ApiModelProperty(value = "用户国家")
    private String country;

    @ApiModelProperty(value = "用户省")
    private String province;

    @ApiModelProperty(value = "用户城市")
    private String city;

    @ApiModelProperty(value = "进入队列时间")
    private Date queueBeginTime;

    @ApiModelProperty(value = "服务小结ID")
    private String csServiceId;

    @ApiModelProperty(value = "分配客户给客服的批次")
    private String batchId;

    @ApiModelProperty(value = "客服接入时间(等待时长=接入时间-会话创建时间)")
    private Date inTime;

    @ApiModelProperty(value = "客服IP地址")
    private String ipAddr;

    @ApiModelProperty(value = "终止方 1.客户 2.客服")
    private String endBy;

    @ApiModelProperty(value = "设备平台 0.unknow 1.win(pc)  2.mac(pc)  3.android(m)  4.ios(m)")
    private Integer devicePlatform;

    @ApiModelProperty(value = "设备类型 1.mobile 2.tablet 3.normal(web)")
    private Integer device;

    @ApiModelProperty(value = "来源 WEBIM(H5),WEIXIN,APP,TELECOM(短信),SKYPE,OTHER,WEIBO;")
    private Integer userSource;

    @ApiModelProperty(value = "是否转接")
    private Integer trans;

    @ApiModelProperty(value = "转接时间")
    private Date transTime;

    @ApiModelProperty(value = "转接备注")
    private String transMemo;

    @ApiModelProperty(value = "AI-ID")
    private String aiId;

    @ApiModelProperty(value = "会话状态 1.INSERVICE(正常), 2.INQUENE(队列中),3.END(结束)")
    private Integer status;

    @ApiModelProperty(value = "会话优先级long-time")
    private Long sort;


}
